package tsi

import (
	watchmessgae "earth/watch_tcp/watch_message"
	"errors"
	"strconv"

	"github.com/sirupsen/logrus"
)

/*
上传血压数据
终端发送[DW*YYYYYYYYYYYYYYY*LEN*blood,x,y]
x 是收缩压（高压）
y 是舒张压（低压）
28 示例[DW*334588000000156*000C*blood,150,70]
平台回复：
[DW*334588000000156*0005*blood]
*/

// 上传血压数据
type HealthDataBlood struct {
	SystolicPressure  int // 收缩压（高压）
	DiastolicPressure int // 舒张压（低压）
}

func DealHealthDataBlood(watchMessage *watchmessgae.WatchMessage, deviceID string) error {
	// 校验消息长度
	if len(watchMessage.MessageContentList) < 2 {
		logrus.Error("message is too short:", watchMessage.MessageContentList)
		return errors.New("message is too short")
	}
	// 解析消息内容
	blood := &HealthDataBlood{}
	systolicPressure, err := strconv.Atoi(watchMessage.MessageContentList[0])
	if err != nil {
		return err
	}
	blood.SystolicPressure = systolicPressure
	diastolicPressure, err := strconv.Atoi(watchMessage.MessageContentList[1])
	if err != nil {
		return err
	}
	blood.DiastolicPressure = diastolicPressure
	return SendEvent(deviceID, blood, "blood")
}
